Systems and Methods For Implementing Location Based Contact Routing

ABSTRACT

The location of a mobile terminal associated with a user is determined using GPS or by monitoring signals generated and received by the mobile terminal, etc. Coordinates for at least one hot spot defined by the user are accessed to determine whether the location of the mobile terminal is within the hot spot. When an incoming contact is received for the user, a determination is made as to whether there are any contact routing rules associates with the user. If so, the record of contact routing rules associated with the user is accessed. If the record of contact routing rules includes at least one contact routing rule assigned to a hot spot, the contact is routed according to the at least one contact routing rule, based on whether or not the mobile terminal is determined to be within the hot spot.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. Provisional Patent ApplicationNo. 61/393,423, filed Oct. 15, 2010, entitled “Location Based CallRouting,” which is incorporated herein by reference.

TECHNICAL FIELD

The present invention relates generally to routing of communications ina telecommunications network. In particular, the present inventionrelates to location based contact routing in a telecommunicationsnetwork.

BACKGROUND OF THE INVENTION

In a telecommunications network, “call routing” or “call forwarding”refers to a calling feature that allows a telephone user to haveincoming calls routed to an alternate phone number based on certainpredefined user-specified rules. For example, a person may elect to haveall calls to a first phone number (e.g., a home phone number) routed toa second phone number (e.g., a work phone number) during the hours of9:00 am and 5:00 pm. Some existing implementations of call routing orforwarding features require the user (i.e., the called party) tomanually update or change the call routing rules to reflectmodifications in the user's schedule. By way of illustration, if theperson in the prior example will not be present at work at some pointduring the hours of 9:00 am and 5:00 pm on a given day and still wantsto receive calls to the user's home or work phone numbers, the personwill need to update the call routing rules to specify a third phonenumber (e.g., a cell phone number) to which the incoming calls are torouted.

Another example of a call routing feature is sometimes referred to as a“find-me/follow-me” feature. In this type of feature, generallyimplemented in a Voice over IP portion of a telecommunications network,calls placed to a user may be routed to one of a number of networkterminals depending upon which terminal the user is currently logged-into. For example, the user may associate a phone number or user name withmultiple network addresses, each corresponding to a different networkterminal (e.g. home computer, work computer, mobile device, etc.) and acall routing application may be configured to determine which of theterminals the user is logged-in to and to route calls to that terminal.In these types of systems, the called party is required to manuallyprovide an indication of the location to which a call is to be routed ata given time, e.g., by logging-in to a network terminal.

Therefore, what is needed is a more efficient implementation of acontact routing feature that can automatically (i.e., without manualuser interaction) be adjusted based on the location of the contactedparty.

SUMMARY OF THE INVENTION

The present invention provides systems, devices and methods forimplementing location based contact routing in a telecommunicationsnetwork. The described embodiments involve determining a location of amobile terminal associated with a user, accessing coordinates for atleast one hot spot defined by the user and determining that the locationof the mobile terminal is within the hot spot. For example, the locationof the mobile terminal may be determined by monitoring the location ofthe mobile terminal using a global position system or by monitoringsignals generated and received by the mobile terminal to triangulate theposition of the mobile terminal. The location of the mobile device ismonitored over time and when it is determined that the mobile terminalhas moved to a new location, the coordinates for the hot spot(s) areaccessed so that a determination can be made as to whether the newlocation of the mobile terminal is within the hot spot(s).

The user may define hot sports by manipulating a graphical userinterface of an application program module. For example, the user maydefine the hot spot by identifying a pin point on an interactive map anddefining a circle having a radius, or any other polygon having at leastone dimension, that extends from the pin point on the interactive map.As another example, the user may define the hot spot by inputting anaddress and defining a dimension that extends from the input address.Geographical coordinates may be determined and stored for each definedhot spot.

The user may also define at least one contact routing rule assigned toeach hot spot. For example, a contact routing rule assigned to a hotspot may specify that an incoming contact is to be routed to adesignated device, or that the contact is to be routed to one or moredesignated devices simultaneously. As another example, a contact routingrule assigned to a hot spot may specify that an incoming contact is tobe routed to a first device and, if the first device does not respond tothe contact within a period of time, then the contact is to be routed toa second device. Contact routing rules may be defined on a per-contactbasis. Default or standard contact routing rules may also be assigned toa hot spot. Contact routing rules may also be defined for groups ofdevices to specify contact routing and handling preferences to beapplied when one or more devices of a defined group are determined to bewithin one or more hot spots.

When an incoming contact is received for the user, a determination ismade as to whether there are any contact routing rules associated withthe user. If so, the record of contact routing rules associated with theuser is accessed. If the record of contact routing rules includes atleast one contact routing rule assigned to a hot spot, the contact isrouted according to the at least one contact routing rule, based onwhether or not the mobile terminal is determined to be within the hotspot. The incoming contact may be a phone call, video call, textmessage, multimedia message or any other type of contact. These andother aspects, features and embodiments of the present invention will bedescribed herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an exemplary system forimplementing location based contact routing in a telecommunicationsnetwork, in accordance with certain embodiments of the invention.

FIG. 2 is an illustration of an exemplary user interface for a hot spotapplication according to certain embodiments of the invention.

FIG. 3 is a block diagram illustrating an exemplary terminal forimplementing location based contact routing in an exemplarytelecommunications network, in accordance with certain embodiments ofthe invention.

FIG. 4 is a flow chart illustrating an exemplary method for implementinga location based contact routing feature according to an embodiment ofthe invention.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

The present invention provides systems and methods for making contactrouting decisions based on a user's physical presence at or near alocation. As used herein, the term “contact” is intended to refer to anytype of call (e.g., phone call, video call, etc.) or message (e.g., textmessage, multimedia message, etc.) that is directed to a particulardevice or terminal associated with a phone number, network address, orthe like. The user defines one or more “hot spots,” each of whichrepresents a geographic area. The user may also specify the contactrouting decisions, or types of contact routing decisions, that are to bemade when the user is physically present within each hot spot.Alternatively, default or standardized contact routing decisions can beconfigured for each hot spot. A user's physical presence within adefined hot spot is detected based on signals from the user's mobilephone or other device (collectively referred to herein as a “mobiledevice” or “mobile terminal”).

In some embodiments, the user may define a hot spot by interacting withan application (referred to herein as a “hot spot application”) thatincorporates interactive map functionality, GPS-based functionality orsome other location based service functionality. Preferably, the hotspot application runs on the user's mobile device. However, it is alsopossible that the hot spot application may be run on another device,such as the user's desktop or laptop computer, a network server, etc.For example, the user may manipulate the graphical user interface of thehot spot application to draw or otherwise define the boundaries of a hotspot. The hot spot application may then translate this visualrepresentation of the hot spot into geographic coordinates or the like.These and other methods for allowing a user to define a hot spot willoccur to those of skill in the art.

By way of example, a user may define a hot spot labeled “work” byidentifying the address of her office on an interactive map and byspecifying a radius or other area (or even a three dimensional space)around that address. Similarly, the user may define a hot spot labeled“home” by identifying the user's home address on the interactive map andby specifying a radius or other area (or even a three dimensional space)around that address. The user may then specify one or more contactrouting rules that are to be followed whenever the user is determined tobe present within either of the hot spots (or outside any of the hotspots). For example, the user may specify that any contact to any of theuser's phone numbers (mobile device, home phone, work phone) should berouted to: (a) the users work phone when the user is within the “work”hot spot, (b) the users home phone when the user is within the “home”hot spot, and (c) the users mobile device when the user is not withineither of the “work” or “home” hot spots. According to this example,when the user is at work, contacts directed to the user will ringthrough to the user's desk phone. When the user goes to lunch and theuser is not within either the “work” or “home” hot spots, the user'scontacts will be automatically routed to the user's mobile device.

Contact routing decisions according to the present invention are madebased on automatic detection of the user's location. Thus, no userinteraction is required (beyond initial hot spot and rule configuration)to make the system work, other than for the user to have a mobile devicewithin in the user's possession. In other words, unlike prior artsystems, the user does not need to manually change routing preferencesor manually provide an indication of his/her location, each time he/shewants contacts to be routed to a different device. Also, the user doesnot need to specify contact routing decisions based on fixed timeintervals (e.g., route all contacts to work phone during hours of 9:00AM to 5:00 PM and to mobile device outside of those hours).

The system may be configured to detect and determine the user's locationin several different ways, depending on the capabilities of a user'smobile device. For example, hot spots may be saved on the user's mobiledevice or on a device within the network. If the hot spots are saved onthe mobile device, the mobile device may be configured to monitor forsignificant changes in its location (e.g., using location basedservices, such as GPS, etc.) and compare each newly detected locationagainst the coordinates of the defined hot spots to determine if themobile device has moved into or out of a hot spot. If so, the mobiledevice notifies the network of the location change and the networkupdates the contact routing settings for that user.

If the mobile device is not capable of detecting and determining its ownlocation, hot spots may instead be stored within the network. Forexample, hot spots may be stored within a database accessible by acontact server and the like. The network may be configured to watch forchanges in the device's location based on signals generated from thedevice and/or other device(s) with which the mobile device communicates(e.g., base stations, routers, repeaters, etc.) and compare such changesagainst the hot spot settings for that mobile device. If it isdetermined that the mobile device has transitioned into or out of adefined hot spot, the network updates the contact routing settings forthat user.

In addition to the simple contact routing rules described above, morecomplicated contact routing rules are also possible. For example, theuser may specify a hierarchy of devices, such that contact are to befirst routed to a particular device when the user is present in within aparticular hot spot, but if a contact is not answered with a certainnumber of rings or a certain time interval it should be routed to asecond device, and so on. In such a scenario, it is envisioned that theuser may be present within the user's defined “work” hot spot but notactually sitting in the user's office. The user may specify that contactto the user when within the “work” hot spot will first ring the user'soffice phone and, if unanswered, will then be routed to user's mobiledevice. In some cases, a user may wish to have contact routed tomultiple devices simultaneously when the user is within a particular hotspot (or is not within a hot spot).

In some embodiments, the hot spot application may be configured to notallow overlapping hot spots. For example, when the user graphicallyadjusts the size of a hot spot, the hot spot application may beconfigured to not allow that hot spot to grow large enough to overlapanother defined hot spot, or may automatically resize other hot spots toaccommodate the desired change. The hot spot application may also beconfigured such that any new hot spot added to the map must be placedoutside the bounds of all existing hot spots. Similarly, if the entiremap is covered with one or more hot spots, the hot spot application maynot allow the creation of new hot spots.

In other embodiments, overlapping hot spots may be allowed. In a simplecase, when the user is determined to be within an area that is coveredby multiple hot spots, the first detected hot spot will be used todetermine the contact routing. In a more sophisticated case, a user'scontact routing preferences (e.g., contact my mobile phone, contact myoffice phone) can be overlapped in an additive or subtractive manner tobuild up more complex routing scenarios. For example, a user mightdefine a “work” hot spot that encompasses the user's entire officebuilding and a smaller “office” hot spot encompassing his/her personaloffice or desk space. In an additive manner, the user could specify thatwhen the user is within the “work” hot spot, all contacts to the usershould be routed to the user's mobile phone and if the user is alsowithin the “office” hot spot contacts should also be routed to theuser's desk phone. Alternatively, in a subtractive manner, the usercould specify that when the user is within the “work” hot spot, allcontacts to the user should be routed to the user's mobile phone—unlessthe user is also within the “office” hot spot, in which case contactsshould instead be routed to the user's desk phone (and not the user'smobile phone).

In some embodiments, a user may be given the option to group andseparate hot spots for common/individual application of contact routingrules. For example, if the user has defined one hot spot as “downtownoffice” and another hot spot as “midtown office”, the user may choose togroup them together for treatment as a single “work” hot spot and thenassociate one or more contact routing rule(s) with that hot spot. Atsome point later, the user may choose to separate the “work” hot spotinto the “downtown office” and “midtown office” hot spots and applydifferent contact routing rule(s) to each one. Similarly, hot spots andcontact routing rules can be defined for groups of users. Whenever oneor more members of a group of users are determined to be within (oroutside) a hot spot, specified contact routing rules may be applied.

As will be appreciated by those of skill in the art, the location basedcontact routing systems and methods of the present invention may beimplemented in a packet-based network or in a packet-based segment of atelecommunications network that includes packet-based andnon-packet-based segments (i.e., a hybrid network). Exemplaryembodiments of the present invention may be implemented in an IPnetwork, which may employ “Voice over IP” and other messaging or contacttechnologies. Voice over IP, also referred to as “VoIP,” is a generalterm of a family of methodologies, protocols, and transmissiontechnologies for delivery of voice communications and multimediasessions over IP networks. Those skilled in the art will appreciate,however, that the principles of the present invention may be applied toany packet-based or frame-based communication protocols andtechnologies.

Location based contact routing may be implemented through one or moresoftware modules executed by one or more network servers (e.g., contactserver, API server, database server), possibly in cooperation with oneor more hot spot applications executed by a mobile device. Callsoriginating from or destined for the Public Switching Telephony Network(PSTN) (or other non-IP segments of a telecommunication network) may berouted to and from the network servers by appropriate media gateways,session border controllers, etc. These devices are collectively, andgenerally, referred to herein as “gateway devices.”

Reference will now be made in detail in various and alternativeexemplary embodiments and to the accompanying figures, in which likenumerals represent substantially identical elements. Each exemplaryembodiments in provided by way of explanation, and not as a limitation.It was be apparent to those skilled in the art that modifications andvariations can be made without departing from the scope or spirit of thedisclosure and claims. For instance, features illustrated or describedas part of one embodiment may be used in connection with anotherembodiment to yield a still further embodiment. Thus, it is intendedthat the present disclosure includes modifications and variations thatcome within the scope of the appended claims and their equivalents.

FIG. 1 depicts an exemplary system 100 for implementing location basedcontact routing in a telecommunications network. The exemplary system100 may include one or more terminals 105 and 107 connected to the PSTN115 and a gateway device 130 a connecting the PSTN 115 to an IP network110 (e.g., the Internet or a private IP network, etc.). The exemplarysystem 100 may also include one or more mobile terminals 120 and 122 incommunication with a radio access network 125 and one or more gatewaydevice 130 b and 130 c connecting the radio access network 125 to thePSTN 115 and the IP network 110, respectively. One or more networkservers (e.g., contact server 135, API server 145, and database server150), one or more database 155 and one or more terminal 160 and 165 mayalso be connected to the IP network 110. One or more terminals 167 (e.g.mobile phone, computer, etc.) may be in communication with both the IPnetwork 110 and the radio access network 125.

As used herein, a “terminal” refers to any wireline, wireless or mobiledevice for initiating and/or receiving contacts, including traditionalrotary terminals, pulse-activated DTMF terminals, cell phones, personalcomputers and the like. As will be appreciated, terminals can vary inconnectivity, functionality and other characteristics and features. Thepresent invention contemplates that one party (the “contacting party”)will use a first terminal (e.g. terminal 105) to call another party (the“contacted party”), who uses a second terminal (e.g., terminal 107,terminal 120 or terminal 160). As mentioned, a contact can comprise anyvoice or other type of media communication. For example, a contact maybe a non-voice communication including but not limited to a text message(e.g., as specified by the well known Short Messaging Service (SMS)), amultimedia message (e.g., as specified by the well known MultimediaMessaging Service (MMS)), and other types of non-voice communicationsthat would be known to those skilled in the art.

As is well known in the art, contacts originating from, terminating inor passing through a non-IP network (e.g., the PSTN 115 or the radioaccess network 125) may pass through one or more gateway devices 130a-c, which, among other functions, convert digital media streams betweendisparate types of telecommunications networks. Gateway functionality isnot unique to the present invention and is therefore not explained infurther detail herein. Of course, the present invention alsocontemplates end-to-end VoIP calls and other end-to-end IP-basedcontacts between terminals (e.g., terminals 160 and 165) connected tothe IP network 110 that would not require a gateway device 130 a-c.

In accordance with the present invention, contact between terminals aremanaged by the contact server 135. FIG. 1 depicts only a single contactserver 135 for simplicity, but multiple contact servers 135 may bedeployed in a scaled system. In the context of the present invention, acontact server 135 can be a VoIP server or any other processor-drivendevice that is capable of executing instructions for establishing and/ormanaging call connections between terminals and for implementing theinventive location based contact routing as described herein. Thecontact server 135 may also be an SMS server, an MMS server or any otherprocessor-driven device that is capable of executing instructions forrouting other contacts (other than calls) between terminals and forimplementing the inventive location based contact routing as describedherein. The contact server 135 will thus include components such as anetwork interface for connecting to the IP network 110 and communicatingwith the resources thereof, a memory component for storingcomputer-executable instructions (e.g., software code) and data, and aprocessor for executing computer-executable instructions. Othercomponents and the basic operation of processor-driven devices are wellknown in the art and are therefore not discussed herein.

In certain embodiments where the contact server 135 is a VoIP server, itmay execute the Linux operating system and the FreeSWITCH communicationsplatform. In such an environment, one or more “location based contactrouting” modules 137, which include computer-executable instructions forperforming the location based contact routing methods described herein,may be implemented as an application, or a component of an application,built on the FreeSWITCH platform. Examples of such applications includeJSON and OpenSSL. In other embodiments, the contact server 135 mayexecute any other suitable operating system and contact managementsoftware and the location based contact routing module(s) 137 may beimplemented as a component thereof or as a stand-alone application. Thecontact server 135 may also execute speech recognition software, such asPocketSpynx or any other suitable program, for detecting speech commandstransmitted by various terminals. The contact server 115 may alsoexecute software module(s) for generating call records or the like.

Call records and other data (e.g., details regarding call connections,call durations, dates and times of other contacts, and various actionstaken by the contacting party and contacted party) may be stored in thelocal memory of the contact server 135, which may include a RAM, harddisk, removable disks, tape arrays, or any other computer readablemedium. Alternatively, or additionally, the contact server 135 maycommunicate with a database server 150 for storing call records and/orother data in one or more database 155. The database(s) 155 may beconnected to the database server 150 and/or the IP network 110. Thedatabase server 155 can be implemented using PostGreSQL running on theLinux operating system, for example.

In some embodiments, functionality for implementing the inventivelocation based contact routing may be distributed among multipleservers, such as the contact server 135, the API server 145 and thedatabase server 150. For example, the API server 145 (or other webserver) may interact with hot spot application modules 170 executed bycertain mobile terminals 120, 122 and 167, such as smart phones,personal computers, laptop or tablet computers or other computingdevices, to specify hot spots and contact routing rules and to determinechanges in terminal location. Thus, the API server 145 may collect datafrom a mobile terminal 120 and may send data and messages to the mobileterminal 120. The API server 145 may then communicate with the databaseserver 150 to store a record of contact routing rules associated withthe user of the mobile terminal 120, which can be accessed by thecontact server 135 when making contact routing decisions for that user.For simplicity's sake, FIG. 1 depicts one contact server 135, one APIserver 145 and one database server 150, but multiple of each or some ofthese devices can be used to implement a more scalable system.

FIG. 2 is an illustration of an exemplary graphical user interface 200for a hot spot application module 170 according to certain embodimentsof the invention. As shown, the interface displays an interactive map202 and allows the user to graphically define the boundary of a hot spot204 by manipulating the graphical user interface 200. In the embodimentillustrated in FIG. 2, the user can define a hot spot by identifying apin point 206 (also referred to as “dropping a pin”) on a particular maplocation and then increase or decrease the radius of a circle around thepin point 206 to define the boundary of the hot spot 204. In otherembodiments, the user may define a hot spot using any polygonal shapethat surrounds or includes the pin point 206. Also, rather than droppinga pin on an interactive map, the user may input an address or geographiccoordinates of a particular location and then specify a radius or otherarea around or including that address or the geographic coordinates.

A hot spot may also be defined in terms of three dimensional space. Asan example, by incorporating a third dimension such as height, thedifferent hot spots may be defined for different floors of the samebuilding. In some embodiments, after defining a hot spot, the user maybe prompted to enter contact routing rules associated with the definedhot spot 204. The user can define the contact routing rules as outlinedabove. This or any other suitable hot spot application interface 200 maybe used in accordance with the present invention.

As described above, the hot spot application module 170 may be executedon the user's mobile device. Alternatively, a hot spot applicationmodule 170 may be hosted on a network server and accessed via a webbrowser. In still other embodiments, a hot spot application module 170may be executed locally on the user's desktop, laptop or other computingdevice and the hot spot coordinates may be transmitted to theappropriate network devices.

FIG. 3 depicts an exemplary terminal 167 for implementing location basedcontact routing in an exemplary telecommunications network 300, inaccordance with certain embodiments of the invention. In the embodimentillustrated in FIG. 3, the exemplary terminal 167 is a mobile device.The exemplary terminal 167 includes components such as a locationdetermining component 305, communication components 312 that allow theterminal to communicate over one or more networks, a memory component315 for storing computer-executable instructions (e.g., software code,such as the exemplary hot spot application module 170) and data, and aprocessor 320 for executing computer-executable instruction. Othercomponents and the basic operation of processor-driven devices are wellknown in the art and are therefore not discussed herein relative to theexemplary terminal 167. As illustrated in FIG. 3, the terminal 167 maybe in communication with one or more servers (e.g., contact server 135,API server 145, and database server 150) connected to the IP network110, either through a direct connection to the IP network 110 or via theradio access network 125 and gateway device 130 c.

By way of example, the communication components 312 may comprise anetwork interface or the like for permitting the terminal 167 tocommunicate over the IP network 110. The communication link between theterminal 167 and the IP network 110 may be wired or wireless. Thecommunication components 312 may further comprise a radio transceiver orthe like for permitting the terminal to communicate over the radioaccess network 125. Those skilled in the art will appreciate that thecommunication components 312 may also or alternatively comprise otherinterfaces or devices for allowing the terminal 167 to communicate overother types of networks not shown in FIG. 3. The operation of thecommunication components 312 may be driven by the processor 320. Thecommunication components 312 interact with the location determiningcomponent 305 and the hot spot application module 170 so that locationinformation and contact routing rules and similar information can becommunication between the terminal 167 and the one or more networkservers 135, 145, 150, as previously described.

The location determining component 305 may comprise various hardware,software and/or firmware elements for determining the location of theterminal 167. For example, the location determining component 305 mayinclude a GPS chip and associated software or firmware for monitoringthe location of the terminal 167 using a global positioning system.Alternatively, or in addition, the location determining component 305may comprise software executed by the processor 320 that interacts withthe communication component(s) 312 to monitor signals generated and/orreceived by the terminal 167 when it communicates with other devices(e.g. base stations) in the radio access network 125 or other devices(e.g., access points or routers) in the IP network 110. The signals mayprovide or may be used to provide an indication of the geographicallocation of the terminal 167 at a particular time, such as bytriangulation or techniques like time difference of arrival (TDOA) orEnhanced Observed Time Difference (E-OTD), etc. The signals may thuspermit the terminal 167 to track its own location and maintain a recordof that information. The location information, which may be in the formof geographical coordinates, may be stored in the memory component 315and/or may be communicated to the API server 145 directly through the IPnetwork 110 or via the radio access network 125 and a gateway device 130c.

Alternatively, or in addition, devices in the radio access network 125or the IP network 110 may be configured to track the location of theterminal 167 and to provide the location information to the terminal 167and/or the API server 145 and/or another network device. For example,devices in the radio access network 125 may determine the location ofthe terminal 167 based on the delay of radio signals sent between theterminal 167 and the closest base station(s). In such cases, thegeographical position of the terminal 167 is found out through varioustechniques like triangulation, time difference of arrival (TDOA) orEnhanced Observed Time Difference (E-OTD). Those skilled in the art willappreciate that any other location based service technology may be usedin accordance with the present invention. Examples of such othertechnologies include: Near LBS (NLBS), in which local-range technologiessuch as Bluetooth, WLAN, infrared and/or RFID/Near Field Communicationtechnologies are used to determine the position of a terminal 167; theuse of operator-independent location data provided in telecommunicationsignaling protocols such as SS7; and Local Positioning Systems such asCo-Pilot Beacon for CDMA networks, Bluetooth, UWB, RFID and Wi-Fi.

The processor 320 may execute computer-executable instructions of thehot spot application module 170 for allowing a user to create and storehot spots, as previously described. In some embodiments, the hot spotapplication module 170 may be configured to access (e.g., at periodicintervals or in response to a command or request from the API server 145or contact server 135) hot spot records and location information fromthe memory component 315 and to determine whether the terminal is withinone or more of the defined hot spots. Alternatively, the hot spotapplication module 170 may interact with the communication components312 to communicate hot spot records to the API server 145. In suchembodiments, the API server 145 may be configured to store hot spotrecords and location information in a local memory or may pass the hotspot records and location information to the database server 150 forstorage in a database 155. Then, at periodic intervals or in response toa command or request from a contact server 135, the API server 145compares the location of the terminal 167 to the hot spot records todetermine if the terminal 167 is within one or more of the defined hotspots.

A hot spot record may include, for example, the coordinates of one ormore hot spots. In some embodiments, a hot spot may be defined in termsof a central pin point on a map surrounded by a radius or area (or evena volume) of a certain size. For example, a hot spot record may indicatethat for a user's “home” hot spot, the coordinates of the central pinpoint are 22°54′30″S and 43°11′47″W and the hot spot extends over anarea (or volume) in at least one directions beyond the pin pointcoordinates. Those skilled in the art will appreciate that other methodsfor defining and recording hot spots may be used in accordance withother embodiments of the invention.

In certain embodiments, the hot spot application module 170 or anotherprogram module executed by the terminal 167 may comprisecomputer-executable instructions for allowing a user to define contactrouting rules associated with the defined hot spot(s). In otherembodiments, a program module for defining contact routing rules isexecuted by another network device, such as a web server, and may beaccessed via the terminal 167 or another device operated by the user. Asanother option, default or standardized contact routing rules can beconfigured (e.g., by a service provider or administrator, etc.) for oneor more hot spots. Contact routing rules are used by a contact server135 to determine how an incoming contact should be routed (i.e., to whatlocation or device) when it is determined that the terminal 167, andthus the user, is inside or outside an associated hot spot.

In certain embodiments, contact routing rules may be specified on aper-contact basis. In other words, a contact routing rule may specifythat when the user's mobile terminal is within a particular hot spot,contacts of a first type (e.g., phone calls) are to be routed in a firstmanner and contacts of a second type (e.g., text messages) are to berouted in a second manner. Contact routing rules may be stored in adatabase 155 or in the local memory of the API server 145 or contactserver 135, or in any other location accessible to the contact server135. For example, the terminal 167 may communicate contact routing rulesto the API server 145, which may pass them to the contact server 135, orto the database server 150 for storage in the database 155.

In other embodiments, contact routing rules may be defined for groups ofusers. In this context, contact routing rules may be used by a contactserver 135 to determine how an incoming contact should be routed when itis determined that one or more terminals 167, and thus users, of adefined group are inside or outside an associated hot spot. For example,if a group of users is defined to include the employees of a company andit is determined that multiple of the employees are within a defined“conference room” hot spot, then a particular contact routing rule maybe applied to any contacts directed to those employees. This type of“group” contact routing rule may be specified by an administrator orsome other entity responsible for managing contacts for multiple users.

When the contact server 135 receives an incoming contact directed to theuser of the terminal 167, the contact server 135 determines whetherthere are any contact routing rule records associated with the user and,if so, retrieves them. The contact server 135 may retrieve the contactrouting rules from the database 155, either directly or via the databaseserver 150 and/or the API server 145, or from any other location wherethey may be stored. The contact server 135 may then communicate with theAPI server 135 and/or the terminal 167 to determine whether the terminal167 is located within one or more hot spots defined by the user, or mayretrieve that information from a storage location, such as its own localmemory, the local memory of the API server or the database 155. Thecontact server 135 then routes the contact according to the call rules,based on whether the terminal 167 is within one or more hot spots.

FIG. 4 is a flow chart illustrating an exemplary method for implementinga location based contact routing feature according to an embodiment ofthe invention. The method begins at start step 401 and proceeds to step402, where the location of a mobile terminal associated with a user isdetermined. By way of example, the location of a mobile terminal may bedetermined using a location based service, such as GPS, etc. If locationbased services are not available, the location of the mobile terminalmay be determined in other manners as previously described, such as bymonitoring signals generated and/or received by the mobile terminal totriangulate the location of the mobile device. Determining the locationof the mobile terminal may also include determining the geographicalcoordinates of the mobile terminal.

At step 404, the coordinates of one or more hot spots defined by theuser are accessed. The coordinates of the hot spot(s) may be retrievedfrom the mobile terminal itself or from another storage location (e.g.,API server, database, etc.). Next at step 406, it is determined whetherthe location of the mobile terminal is within one or more of the hotspots and such information is stored in memory. To determine whether themobile terminal is located within one or more of the hot spots, thegeographic coordinates of the hot spot(s) may be compared to thegeographic coordinates of the mobile terminal. Information indicatingwhether the mobile terminal is within one or more hot spot may be storedin the memory of the mobile terminal or in another storage location(e.g., API server, database, etc.). In some embodiments, the storedinformation may indicate whether the terminal is within or outside eachhot spot that has been defined by the user.

At step 408 a determination is made as to whether an incoming contacthas been received for the user of the mobile terminal. If it isdetermined that no contact has been received for the user, the methodreturns to step 402 where the location of the mobile terminal is againdetermined and processing proceeds from that point as previouslydescribed. Steps 402-404 may be repeated on a periodic basis and/or inresponse to a request or command from a contact server, API server oranother network device. Alternatively, step 402 may be repeated on aperiodic basis and steps 404-406 may be performed only when a change inthe location of the terminal is detected. As described, steps 402-404may be performed by the terminal and/or a combination of networkdevices, such as servers in an IP network and/or servers in a radioaccess network.

When it is determined at step 408 that an incoming contact has beenreceived for the user, the method proceeds to step 410 where it isdetermined whether there are any contact routing rules associated withthe user. If it is determined at step 410 that there are no contactrouting rules associated with the user, the method advances to step 412where the contact may be routed to the originally-intended destination(i.e., the device to which it was addressed by the contacting party).However, if it is determined at step 410 that there are one or morecontact routing rules associated with the user, the method advances tostep 414 where the contact routing rules are accessed. As described, thecontact routing rules may be accessed from a database or from the localmemory of a contact server or API server. Next at step 416, informationindicating whether the mobile terminal is within one or more hot spotsis accessed. Again, this information may be accessed from the localmemory of a contact server, or may be requested from an API server orthe terminal itself. Then at step 418, the contact is routed accordingto at least one contact routing rule assigned to one or more hot spots,based on whether the mobile terminal is within or outside the one ormore hot spots. After the contact is routed at either step 418 or 412,the method ends at step 420.

Many other modifications, features and embodiments of the presentinvention will become evident to those of skill in the art. For example,the location based contact routing system described herein may beimplemented using various other device configurations and networkarchitectures. As another example, it has been assumed herein that thelocation of a mobile terminal corresponds to the location of the user ofthe mobile terminal. However, it is of course possible that the user maybe in a location that is different from the location of his/her mobileterminal. Additional logic may be implemented (e.g., within the mobileterminal or within one or more network servers) for determining periodsof inactivity with respect to the mobile terminal (e.g., no calls,emails, use of application programs, etc.) that exceed a particularthreshold and to implement specified or default routing rules for suchsituations. As a further example, specified or default routing rules maybe implemented when it is determined that the mobile terminal associatedwith a user is not within any hot spots defined by the user.Accordingly, it should be understood that the foregoing relates only tocertain embodiments of the invention, which are presented by way ofexample rather than limitation. Numerous changes may be made to theembodiments described herein without departing from the spirit and scopeof the invention.

1. A method for location based contact routing in a telecommunicationsnetwork, the method comprising: determining a location of a mobileterminal associated with a user; accessing coordinates for a hot spotdefined by the user and determining that the location of the mobileterminal is within the hot spot; receiving an incoming contact for theuser; accessing a record of contact routing rules associated with theuser, the record including at least one contact routing rule assigned tothe hot spot; and routing the contact according to the at least onecontact routing rule assigned to the hot spot.
 2. The method of claim 1,wherein the contact is a phone call, video call, a text message or amultimedia message.
 3. The method of claim 1, wherein the location ofthe mobile terminal is determined by monitoring the location of themobile terminal using a global position system.
 4. The method of claim1, wherein the location of the mobile terminal is determined bymonitoring signals generated and communicated by the mobile terminal totriangulate the position of the mobile terminal.
 5. The method of claim1, wherein the user manipulates a graphical user interface to define thecoordinates of the hot spot.
 6. The method of claim 1, wherein the userdefines the hot spot by inputting an address and defining an area orvolume that includes the input address.
 7. The method of claim 1,wherein the user defines the hot spot by identifying a pin point on aninteractive map and defining an area or volume that includes the pinpoint
 8. The method of claim 1, further comprising: determining a newlocation of the mobile terminal associated with the user; and accessingcoordinates for the hot spot and determining that the new location ofthe mobile terminal is within the hot spot.
 9. The method of claim 1,wherein the at least one contact routing rule assigned with the hot spotis defined by the user.
 10. The method of claim 9, wherein the at leastone contact routing rule assigned to the hot spot specifies that thecontact is to be routed to a designated device.
 11. The method of claim9, wherein the at least one contact routing rule assigned to the hotspot specifies that the contact is to be routed to one or moredesignated devices simultaneously.
 12. The method of claim 9, whereinthe at least one contact routing rule assigned to the hot spot specifiesthat the contact is to be routed to a first device and, if the firstdevice does not respond to the contact within a period of time, then thecontact is to be routed to a second device.
 13. A contact server forimplementing location based contact routing in a telecommunicationsnetwork comprising: a network interface for connecting the contactserver to a packet-based network comprising at least a segment of thetelecommunications network; a memory for storing one or more programmodules; and a processor for executing the one or more program modules,wherein the one or more program modules comprise computer-executableinstructions for causing the call server to: receive an incoming contactfor a user of a mobile terminal; access a record of contact routingrules associated with the user, the record including at least onecontact routing rule assigned to a hot spot defined by the user; accessinformation indicating that the mobile terminal is within the hot spot;and route the contact according to the at least one contact routing ruleassigned to the hot spot.
 14. The contact server of claim 13, whereinthe one or more program modules further comprise computer-executableinstructions for causing the call server to identify a record of one ormore contact routing rules associated with the user.
 15. The contactserver of claim 13, wherein accessing information indicating that themobile terminal is within the hot spot comprises communicating with anAPI server to obtain information determining whether the mobile terminalis located within the hot spot.
 16. The contact server of claim 13,wherein accessing information indicating that the mobile terminal iswithin the hot spot comprises communicating with the mobile terminal toobtain information determining whether the mobile terminal is locatedwithin the hot spot.
 17. The contact server of claim 13, whereinaccessing information indicating that the mobile terminal is within thehot spot comprises accessing the memory to obtain informationdetermining whether the mobile terminal is located within the hot spot.18. The contact server of claim 13, wherein the incoming contact for theuser of the mobile terminal is a phone call, video call, a text messageor a multimedia message.
 19. The contact sever of claim 13, whereinrouting the contact according to the at least one contact routing ruleassigned to the hot spot comprises routing the contact to a designateddevice.
 20. The contact sever of claim 13, wherein routing the contactaccording to the at least one contact routing rule assigned to the hotspot comprises routing the contact to one or more designated devicessimultaneously.
 21. The contact sever of claim 13, wherein routing thecontact according to the at least one contact routing rule assigned tothe hot spot comprises routing the contact to a first device and, if thefirst device does not respond to the contact within a period of time,then routing the contact to a second device.
 22. A non-transitorycomputer readable medium having computer-executable instructions forexecuting location based contact routing in a telecommunicationsnetwork, the computer-executable instructions performing stepscomprising: determining a location of a mobile terminal associated witha user; accessing coordinates for a hot spot defined by the user anddetermining that the location of the mobile terminal is within the hotspot; receiving an incoming contact for the user; accessing a record ofcontact routing rules associated with the user, the record including atleast one contact routing rule assigned to the hot spot; and routing thecontact according to the at least one contact routing rule assigned tothe hot spot.